#ifndef __MAP_H__
#define __MAP_H__


#include <string>
#include "MapCell.h"
#include "Table.h"

#include "Coordinate.h"

/**
 *  @file
 *  Class "Map"
 */

/**
 * Map class
 * contains a table of cells where the Player can move in
 *
 */
class Map
{
public:
				Map();
				~Map();

	void			setMapDimension(unsigned int maxX, unsigned int maxY);
	void			setCell(unsigned int x, unsigned int y, MapCell cell);
	void			setName(std::string name);
	void			setID(std::string id);
	std::string		getName();
	std::string		getID();
	void			print();
	void			print(unsigned int x, unsigned int y);
	bool			findCell(std::string searchContent, t_coord& resultCoord);
	bool			checkWest(t_coord coord);
	bool			checkEast(t_coord coord);
	bool			checkSouth(t_coord coord);
	bool			checkNorth(t_coord coord);

	Table<MapCell>	m_cells;			//!< Table of cells

private:
	std::string		m_strName;			//!< Name of the map
	std::string		m_strID;			//!< short name of the map			
};



#endif // __MAP_H__
